home *** CD-ROM | disk | FTP | other *** search
/ Windows Expert / Windows Expert.iso / windownt / mews1m.zip / MEWINMS.MAK next >
Makefile  |  1993-03-30  |  9KB  |  303 lines

  1. # makefile for MEWIN (MicroEMACS for Windows)
  2. # for Microsoft C compiler (6.0 or 7.0) on i386 or MIPS CPU
  3. #
  4. # define TARGET as C6, C7 or NT (or some other short suffix)
  5. # for Windows/NT, use TARGET=NT
  6. # other suffixes compile for Windows 3.1
  7. # adjusted 3/30/93 for the March NT Beta:
  8. #   - changed flags i386, MIPS and ALPHA to _X86_, _MIPS_ and _ALPHA_
  9. #   - changed flag WIN32 to _WIN32_
  10. #   - added the command modifier "-" to the mkdir command to avoid silly aborts
  11. #   - removed the /BATCH option from the NT cl386 flag list
  12. #   - added the definition _CTYPE_DEFINED=1 to avoid conflict with ctype.h on
  13. #     islower and isupper (this hack probably belongs in estruct.h rather than here)
  14. #   - added the definition of __export to nullify it as the new compiler no longer
  15. #     ignores this (another hack for which the real fix belongs in estruct.h)
  16. #   - changed the LINKER macro to point to link32 when under NT
  17. #   - changed the LIB invocation to lib32
  18.  
  19. !IFNDEF DEBUG
  20. DEBUG = 0
  21. !ENDIF
  22.  
  23. !IFNDEF TARGET
  24. !IFDEF SYSTEMROOT
  25. TARGET = NT
  26. !ELSE
  27. TARGET = C7
  28. !ENDIF
  29. !ENDIF
  30.  
  31. !IFNDEF CPU
  32. !IF "$(TARGET)"=="NT"
  33. CPU = i386
  34. !ENDIF
  35. !ENDIF 
  36.  
  37. OBJ = $(TEMP)\MEWIN.$(TARGET)
  38. PROJ = MEWIN$(TARGET)
  39.  
  40. DEF_FILE = MEWIN.DEF
  41. RES_FILE = MEWIN.RES
  42. RC_FILE = MEWIN.RC
  43. DLG_FILES = mswmodes.dlg mswmlh.dlg mswfonts.dlg mswprg.dlg mswabout.dlg\
  44.         mswfile.dlg
  45. ICO_FILES = mswapp.ico mswscr.ico mswwait.ico
  46. CUR_FILES = mswcur.cur mswnot.cur mswgrin1.cur mswgrin2.cur mswgrin3.cur \
  47.         mswgrin4.cur mswgrin5.cur mswgrin6.cur mswgrin7.cur mswgrin8.cur
  48. BMP_FILES =
  49. MNU_FILES = mswmenu.rc
  50.  
  51. !IF "$(TARGET)"=="NT"
  52. LINKER    = link32
  53. !IF "$(CPU)"=="MIPS"
  54. # MIPS specific build stuff
  55. CPUTYPE=2
  56. CC = cc
  57. cvtobj = mip2coff
  58. CFLAGS_G  = -std -G0 -O -EL -D_MIPS_=1 -D_WIN32_ -DWINNT=1 -D__export= -D_CTYPE_DEFINED=1 -D__cdecl= -D__export= $(C_FLAGS)
  59. CFLAGS_D  =
  60. CFLAGS_R  =
  61. LFLAGS_G  = /SUBSYSTEM:windows /ENTRY:WinMainCRTStartup\
  62.         /OUT:$(PROJ).exe $(L_FLAGS)
  63. LFLAGS_D  = /DEBUG:full
  64. LFLAGS_R  = 
  65. LLIBS_G   = $(OBJ)\$(PROJ).lib $(LIB)\libcmt.lib $(LIB)\*.lib
  66. LLIBS_R  =
  67. LLIBS_D  =
  68. !ELSE
  69. !IF "$(CPU)"=="ALPHA"
  70. # Alpha AXP build stuff
  71. CPUTYPE=2
  72. CC = acc 
  73. cvtobj = a2coff
  74. CFLAGS_G  = -std -G0 -O -EL -D_ALPHA_=1 -D_WIN32_ -DWINNT=1 -D__export= -D_CTYPE_DEFINED=1 -D__cdecl=-D__export= $(C_FLAGS)
  75. CFLAGS_D  =
  76. CFLAGS_R  =
  77. LFLAGS_G  = /SUBSYSTEM:windows /ENTRY:WinMainCRTStartup\
  78.         /OUT:$(PROJ).exe $(L_FLAGS)
  79. LFLAGS_D  = /DEBUG:full
  80. LFLAGS_R  = 
  81. LLIBS_G   = $(OBJ)\$(PROJ).lib $(LIB)\libcmt.lib $(LIB)\*.lib
  82. LLIBS_R  =
  83. LLIBS_D  =
  84. !ELSE
  85. # x86 build stuff
  86. !if "$(CPU)"=="i386"
  87. CC  = cl386
  88. CFLAGS_G  = /G3 /Gd /D_X86_=1 /D_WIN32_ /DWINNT=1 /D__export= /D_CTYPE_DEFINED=1 $(C_FLAGS)
  89. CFLAGS_D  = /Od /Zi
  90. CFLAGS_R  = /Os /Og
  91. LFLAGS_G  = /SUBSYSTEM:windows /ENTRY:WinMainCRTStartup\
  92.         /OUT:$(PROJ).exe $(L_FLAGS)
  93. LFLAGS_D  = /DEBUG:full /DEBUGTYPE:cv
  94. LFLAGS_R  = 
  95. LLIBS_G   = $(OBJ)\$(PROJ).lib libc.lib ntdll.lib \
  96.         kernel32.lib user32.lib gdi32.lib shell32.lib
  97. LLIBS_R  =
  98. LLIBS_D  =
  99. !ELSE
  100. !ERROR  Must specify CPU Environment Variable
  101. !ERROR  (set CPU=i386 or set CPU=MIPS or set CPU=ALPHA)
  102. !ENDIF
  103. !ENDIF
  104. !ENDIF
  105. !ELSE
  106. LINKER    = link
  107. CC  = cl
  108. CFLAGS_G  = /AL /G2 /Gx /GA /DWINVER=0x030a /Zp /BATCH
  109. CFLAGS_D  = /Od /Zi
  110. CFLAGS_R  = /Os /Og /Gs
  111. LFLAGS_G  = /BATCH /ONERROR:NOEXE
  112. LFLAGS_D  = /CO /NOF
  113. LFLAGS_R  = /F
  114. LLIBS_G  = LIBW.LIB SHELL.LIB
  115. LLIBS_R  = /NOD:LLIBCE LLIBCEW.LIB
  116. LLIBS_D  = /NOD:LLIBCE LLIBCEW.LIB
  117. !ENDIF
  118. MAPFILE_D  = $(OBJ)\$(PROJ).map
  119. MAPFILE_R  = NUL
  120. LRF  = echo > NUL
  121. RC  = rc
  122. RCFLAGS2  = /30 /t
  123. CVFLAGS  = /25
  124.  
  125. FILES  = BASIC.C BIND.C BUFFER.C CHAR.C CRYPT.C DISPLAY.C DOLOCK.C EVAL.C\
  126.     EXEC.C FILE.C FILEIO.C INPUT.C ISEARCH.C LINE.C LOCK.C MAIN.C MOUSE.C\
  127.     MSWDISP.C MSWDRV.C MSWEMACS.C MSWEXEC.C MSWFILE.C MSWFONT.C MSWINPUT.C\
  128.     MSWMEM.C MSWMENU.C MSWSYS.C RANDOM.C REGION.C SCREEN.C SEARCH.C\
  129.     WINDOW.C WORD.C
  130.  
  131. OBJ_FILES = $(OBJ)\BASIC.obj $(OBJ)\BIND.obj $(OBJ)\BUFFER.obj $(OBJ)\CHAR.obj\
  132.         $(OBJ)\CRYPT.obj $(OBJ)\DISPLAY.obj $(OBJ)\DOLOCK.obj $(OBJ)\EVAL.obj\
  133.         $(OBJ)\EXEC.obj $(OBJ)\FILE.obj $(OBJ)\FILEIO.obj $(OBJ)\INPUT.obj\
  134.         $(OBJ)\ISEARCH.obj $(OBJ)\LINE.obj $(OBJ)\LOCK.obj $(OBJ)\MAIN.obj\
  135.         $(OBJ)\MOUSE.obj $(OBJ)\MSWDISP.obj $(OBJ)\MSWDRV.obj\
  136.         $(OBJ)\MSWEMACS.obj $(OBJ)\MSWEXEC.obj $(OBJ)\MSWFILE.obj\
  137.         $(OBJ)\MSWFONT.obj $(OBJ)\MSWINPUT.obj $(OBJ)\MSWMEM.obj\
  138.         $(OBJ)\MSWMENU.obj $(OBJ)\MSWSYS.obj $(OBJ)\RANDOM.obj\
  139.         $(OBJ)\REGION.obj $(OBJ)\SCREEN.obj $(OBJ)\SEARCH.obj\
  140.         $(OBJ)\WINDOW.obj $(OBJ)\WORD.obj
  141.  
  142. all: $(PROJ).exe
  143.  
  144. .SUFFIXES:
  145. .SUFFIXES: .obj .c
  146. .SUFFIXES: .obj .c
  147.  
  148. $(OBJ)\BASIC.obj : BASIC.C estruct.h eproto.h edef.h elang.h english.h
  149.  
  150. $(OBJ)\BIND.obj : BIND.C estruct.h eproto.h edef.h elang.h epath.h english.h
  151.  
  152. $(OBJ)\BUFFER.obj : BUFFER.C estruct.h eproto.h edef.h elang.h english.h
  153.  
  154. $(OBJ)\CHAR.obj : CHAR.C estruct.h eproto.h edef.h elang.h english.h
  155.  
  156. $(OBJ)\CRYPT.obj : CRYPT.C estruct.h eproto.h edef.h elang.h english.h
  157.  
  158. $(OBJ)\DISPLAY.obj : DISPLAY.C estruct.h eproto.h edef.h elang.h english.h
  159.  
  160. $(OBJ)\DOLOCK.obj : DOLOCK.C estruct.h eproto.h elang.h english.h
  161.  
  162. $(OBJ)\EVAL.obj : EVAL.C estruct.h eproto.h edef.h elang.h evar.h english.h
  163.  
  164. $(OBJ)\EXEC.obj : EXEC.C estruct.h eproto.h edef.h elang.h english.h
  165.  
  166. $(OBJ)\FILE.obj : FILE.C estruct.h eproto.h edef.h elang.h english.h
  167.  
  168. $(OBJ)\FILEIO.obj : FILEIO.C estruct.h eproto.h edef.h elang.h english.h
  169.  
  170. $(OBJ)\INPUT.obj : INPUT.C estruct.h eproto.h edef.h elang.h english.h
  171.  
  172. $(OBJ)\ISEARCH.obj : ISEARCH.C estruct.h eproto.h edef.h elang.h english.h
  173.  
  174. $(OBJ)\LINE.obj : LINE.C estruct.h eproto.h edef.h elang.h english.h
  175.  
  176. $(OBJ)\LOCK.obj : LOCK.C estruct.h eproto.h edef.h elang.h english.h
  177.  
  178. $(OBJ)\MAIN.obj : MAIN.C estruct.h eproto.h efunc.h edef.h elang.h ebind.h\
  179.         english.h
  180.  
  181. $(OBJ)\MOUSE.obj : MOUSE.C estruct.h eproto.h edef.h elang.h english.h
  182.  
  183. $(OBJ)\MSWDISP.obj : MSWDISP.C estruct.h elang.h eproto.h edef.h mswin.h\
  184.         english.h mswrid.h
  185.  
  186. $(OBJ)\MSWDRV.obj : MSWDRV.C estruct.h elang.h eproto.h edef.h mswin.h\
  187.      english.h mswrid.h
  188.  
  189. $(OBJ)\MSWEMACS.obj : MSWEMACS.C estruct.h eproto.h edef.h elang.h mswin.h\
  190.      english.h mswmenu.h mswrid.h
  191.  
  192. $(OBJ)\MSWEXEC.obj : MSWEXEC.C estruct.h eproto.h edef.h elang.h mswin.h\
  193.      english.h mswrid.h
  194.  
  195. $(OBJ)\MSWFILE.obj : MSWFILE.C estruct.h eproto.h edef.h mswin.h mswrid.h
  196.  
  197. $(OBJ)\MSWFONT.obj : MSWFONT.C estruct.h eproto.h edef.h mswin.h mswrid.h
  198.  
  199. $(OBJ)\MSWINPUT.obj : MSWINPUT.C estruct.h elang.h eproto.h edef.h mswin.h\
  200.      english.h mswrid.h
  201.  
  202. $(OBJ)\MSWMEM.obj : MSWMEM.C estruct.h eproto.h edef.h elang.h mswin.h\
  203.      english.h mswrid.h
  204.  
  205. $(OBJ)\MSWMENU.obj : MSWMENU.C estruct.h elang.h eproto.h edef.h mswin.h\
  206.      mswmenu.h mswhelp.h english.h mswrid.h
  207.  
  208. $(OBJ)\MSWSYS.obj : MSWSYS.C estruct.h elang.h eproto.h edef.h mswin.h\
  209.      english.h mswrid.h
  210.  
  211. $(OBJ)\RANDOM.obj : RANDOM.C estruct.h eproto.h edef.h elang.h english.h
  212.  
  213. $(OBJ)\REGION.obj : REGION.C estruct.h eproto.h edef.h elang.h english.h
  214.  
  215. $(OBJ)\SCREEN.obj : SCREEN.C estruct.h eproto.h edef.h elang.h english.h
  216.  
  217. $(OBJ)\SEARCH.obj : SEARCH.C estruct.h eproto.h edef.h elang.h english.h
  218.  
  219. $(OBJ)\WINDOW.obj : WINDOW.C estruct.h eproto.h edef.h elang.h english.h
  220.  
  221. $(OBJ)\WORD.obj : WORD.C estruct.h eproto.h edef.h elang.h english.h
  222.  
  223. $(OBJ)\$(RES_FILE) : $(RC_FILE) mswin.h mswrid.h mswmenu.h\
  224.         $(DLG_FILES) $(ICO_FILES) $(CUR_FILES) $(BMP_FILES) $(MENU_FILES)
  225.         $(RC) /r /fo $(OBJ)\$(RES_FILE) $(RC_FILE)
  226.  
  227. $(PROJ).exe : $(OBJ) $(OBJ_FILES) $(OBJ)\$(RES_FILE)
  228. !IF $(DEBUG)
  229. !IF "$(TARGET)"=="NT"
  230.     $(LRF) @<<$(OBJ)\$(PROJ).lrf
  231. $(OBJ_FILES)
  232. $(LIBS) $(LLIBS_G) $(LLIBS_D)
  233. $(LFLAGS_G) $(LFLAGS_D);
  234. <<
  235. !ELSE
  236.     $(LRF) @<<$(OBJ)\$(PROJ).lrf
  237. $(RT_OBJS: = +^
  238. ) $(OBJ_FILES: = +^
  239. )
  240. $@
  241. $(MAPFILE_D)
  242. $(LIBS: = +^
  243. ) +
  244. $(LLIBS_G: = +^
  245. ) +
  246. $(LLIBS_D: = +^
  247. )
  248. $(DEF_FILE) $(LFLAGS_G) $(LFLAGS_D);
  249. <<
  250. !ENDIF
  251. !ELSE
  252. !IF "$(TARGET)"=="NT"
  253.     $(LRF) @<<$(OBJ)\$(PROJ).lrf
  254. $(OBJ_FILES)
  255. $(LIBS) $(LLIBS_G) $(LLIBS_R)
  256. $(LFLAGS_G) $(LFLAGS_R);
  257. <<
  258. !ELSE
  259.     $(LRF) @<<$(OBJ)\$(PROJ).lrf
  260. $(RT_OBJS: = +^
  261. ) $(OBJ_FILES: = +^
  262. )
  263. $@
  264. $(MAPFILE_R)
  265. $(LIBS: = +^
  266. ) +
  267. $(LLIBS_G: = +^
  268. ) +
  269. $(LLIBS_R: = +^
  270. )
  271. $(DEF_FILE) $(LFLAGS_G) $(LFLAGS_R);
  272. <<
  273. !ENDIF
  274. !ENDIF
  275. !IF "$(TARGET)"=="NT"
  276.         cvtres -$(CPU) $(OBJ)\$(RES_FILE)
  277.         lib32 /OUT:$(OBJ)\$(PROJ).lib /DEF:$(DEF_FILE) /MACHINE:$(CPU)
  278.     $(LINKER) $(OBJ)\MEWIN.OBJ @$(OBJ)\$(PROJ).lrf
  279. !ELSE
  280.     $(LINKER) @$(OBJ)\$(PROJ).lrf
  281.         $(RC) $(RCFLAGS2) $(OBJ)\$(RES_FILE) $(PROJ).exe
  282. !ENDIF
  283.  
  284. $(OBJ):
  285.         -mkdir $(OBJ)
  286.  
  287. .c{$(OBJ)}.obj :
  288. !IF "$(CPU)"=="MIPS" || "$(CPU)"=="ALPHA"
  289. !IF $(DEBUG)
  290.     @$(CC) -c $(CFLAGS_G) $(CFLAGS_D) -o $@ $<
  291. !ELSE
  292.     @$(CC) -c $(CFLAGS_G) $(CFLAGS_R) -o $@ $<
  293. !ENDIF
  294.         @$(cvtobj) $@
  295. !ELSE
  296. !IF $(DEBUG)
  297.     @$(CC) /c $(CFLAGS_G) $(CFLAGS_D) /Fo$@ $<
  298. !ELSE
  299.     @$(CC) /c $(CFLAGS_G) $(CFLAGS_R) /Fo$@ $<
  300. !ENDIF
  301. !ENDIF
  302.